/**
 * 这里有n个航班，它们分别从 1 到 n 进行编号。
 *
 * 有一份航班预订表bookings ，表中第i条预订记录bookings[i] = [firsti, lasti, seatsi]意味着在从 firsti到 lasti （包含 firsti 和 lasti ）的 每个航班 上预订了 seatsi个座位。
 *
 * 请你返回一个长度为 n 的数组answer，里面的元素是每个航班预定的座位总数。
 *
 * 链接：https://leetcode.cn/problems/corporate-flight-bookings
 */
class CorpFlightBookings {
    public int[] corpFlightBookings(int[][] bookings, int n) {
        int[] diff=new int[n+2];//差分数组
        for(int[] booking:bookings) {//构造差分数组
            diff[booking[0]]+=booking[2];
            diff[booking[1]+1]-=booking[2];
        }
        int t=0;
        int[] ret=new int[n];
        for(int i=0;i<n;i++) {//根据差分数组构造结果数组
            t=t+diff[i+1];
            ret[i]=t;
        }
        return ret;
    }
}